﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using Kaidou.Persister;
using Kaidou.Model;
using Kaidou.Util;

namespace Kaidou.Bll
{
    public class MST_UnionManager
    {

        public List<string> checkInsertOrUpdateUnion(MstUnion M, System.Resources.ResourceManager rm, bool insert)
        {

            InputErrorException ie = new InputErrorException(rm);
            try
            {

                if (insert)
                {

                    // 組合員コードチェック
                    if (ParameterCheckUtility.checkUnionCode(ie, M.Id.UnionCode))
                    {
                        //組合員コード重複チェック
                        ParameterCheckUtility.notexistUnion(ie, M.Id.UnionCode);
                    }

                }
                else
                {
                    ParameterCheckUtility.checkUnionCode(ie, M.Id.UnionCode);
                    //組合員コード存在チェック
                    ParameterCheckUtility.existUnion(ie, M.Id.UnionCode);
                }

                // 組合員名チェック
                ParameterCheckUtility.checkOfficeName(ie, M.OfficeName);

                // 組合員名(カナ)チェック
                ParameterCheckUtility.checkOfficeNameKana(ie, M.OfficeKana);

                // 所在地・郵便番号チェック
                ParameterCheckUtility.checkZipNo(ie, M.OfficeZipNo, M.OfficeZipNo1, M.OfficeZipNo2);

                //都道府県コードのチェック
                ParameterCheckUtility.checkPrefCode(ie, M.OfficePrefCode);

                // 所在地・市区町村チェック
                ParameterCheckUtility.checkCity(ie, M.OfficeCity);

                // 所在地・番地以降チェック
                ParameterCheckUtility.checkAddress(ie, M.OfficeAddress);

                // 代表電話番号チェック
                ParameterCheckUtility.checkTelNo(ie, M.OfficeTel);

                if (!StringUtil.isEmpty(M.TraderRegNo1) && !StringUtil.isEmpty(M.TraderRegNo2))
                {
                    // 電話番号と設置業者電話番号のチェック
                    ParameterCheckUtility.checkTraderTelNo(ie, M.TraderRegNo, M.TraderRegNo1, M.TraderRegNo2, M.OfficeTel);
                }

                // FAX番号チェック
                ParameterCheckUtility.checkFaxNo(ie, M.OfficeFax);

                // EMAILチェック
                ParameterCheckUtility.checkMailAddress2(ie, M.OfficeEmail);

                // 代表者名チェック
                ParameterCheckUtility.checkDaihyoName(ie, M.DaihyoName);

                // 代表者名（カナ）チェック
                ParameterCheckUtility.checkDaihyoNameKana(ie, M.DaihyoKana);

                // 担当者名
                ParameterCheckUtility.checkTantoName(ie, M.TantoName);

                // 担当者名(カナ)
                ParameterCheckUtility.checkTantoNameKana(ie, M.TantoKana);

                // 販売業者登録証番号
                ParameterCheckUtility.checkTraderRegNoForUnion(ie, M.TraderRegNo1, M.TraderRegNo2);

                if (!StringUtil.isEmpty(M.TraderRegNo1) && !StringUtil.isEmpty(M.TraderRegNo2))
                {
                    //登録証番号をチェック
                    ParameterCheckUtility.existTrader(ie, M.TraderRegNo, M.TraderRegNo1, M.TraderRegNo2);
                }

                //パスワードチェック
                ParameterCheckUtility.checkPassword(ie,M.Password);

                //ユーザー区分
                if ("on".Equals(rm.GetString("kaidou_view_user_clss")))
                {
                    ParameterCheckUtility.checkUserClss(ie, M.UserClss);
                }

            }
            catch (Exception e1)
            {
                ie.addErrorCode(ErrorCodeDefine.CHECK_SYS_ERROR);
                LogManager.error("MST_UnionManager - checkTraderRegNoForUnion "+e1.Message);
            }

            return ie.getErrorMessages();

        }

        
    
    }
}
